获取位置(LocationManager)

  1. 需要申请权限

     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
     <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
    
  2. 代码

     public class TestgpsActivity extends Activity {
         private LocationManager lm;
         private MyListener listener;
    
         @Override
         public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.main);
             lm = (LocationManager) getSystemService(LOCATION_SERVICE);
    
             Criteria criteria = new Criteria();
             criteria.setAccuracy(Criteria.ACCURACY_FINE);
             criteria.setCostAllowed(true);
             criteria.setPowerRequirement(Criteria.POWER_HIGH);
             criteria.setSpeedRequired(true);
             String provider = lm.getBestProvider(criteria, true);
             //第一个参数 位置提供者 第二个参数 最短更新时间 第三参数 最短的更新的距离
             listener = new MyListener();
             lm.requestLocationUpdates(provider, 0, 0, listener);
    
         }
         @Override
         protected void onDestroy() {
             lm.removeUpdates(listener);
             super.onDestroy();
         }
    
         private class MyListener implements LocationListener{
    
             /**
              * 当位置改变的时候
              */
             @Override
             public void onLocationChanged(Location location) {
                 float accuracy = location.getAccuracy();
                 double wlong = location.getLatitude(); //纬度
                 double jlong = location.getLongitude(); //经度
    
                 TextView tv = new TextView(getApplicationContext());
                 tv.setText("经度:"+jlong+"\n"+"纬度:"+wlong+"\n"+ accuracy);
                 setContentView(tv);
    
             }
             /**
              * 某一个位置提供者的状态发生改变的时候调用的方法
              */
             @Override
             public void onStatusChanged(String provider, int status, Bundle extras) {
    
             }
    
             @Override
             public void onProviderEnabled(String provider) {
    
             }
    
             @Override
             public void onProviderDisabled(String provider) {
    
             }
         }
     }
    

results matching ""

    No results matching ""